Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Άνοιγμα video από MemoryStream με χρήση του DirectShow

Îåêßíçóå áðü ôï ìÝëïò pap. Τελευταία δημοσίευση από το μέλος pap στις 07-11-2011, 19:30. Υπάρχουν 2 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  04-11-2011, 13:23 68039

    Άνοιγμα video από MemoryStream με χρήση του DirectShow

    Γεια σας παιδιά

    Έχω ένα κρυπτογραφημένο αρχείο και το αποκρυπτογραφώ στη μνήμη (MemoryStream). Το πρόβλημά μου είναι να το κάνω να παίξει πχ. στο WindowsMediaPlayer στη φόρμα μου. Μετά από εκτενή έρευνα το μόνο που βρήκα είναι ότι αυτό γίνεται μόνο με το DirectShow SDK. Αλλά πουθενά δε βρήκα με ποιον ακριβώς τρόπο θα το κάνω. Επικρατεί ένα χάος στο DirectShow!

    Καμμιά βοήθεια;
  •  04-11-2011, 16:19 68043 σε απάντηση της 68039

    Απ: Άνοιγμα video από MemoryStream με χρήση του DirectShow

    Είναι καθαρά θέμα του control που χρησιμοποιείς το αν μπορεί να δουλέψει με κάποια Stream κλάση ή απαιτεί κάποιο path ή URL. Αν μπορεί, δεν υπάρχει λόγος να κάνεις την αποκρυπτογράφηση στη μνήμη, μπορείς απλά να χρησιμοποιήσεις ένα CryptoStream πάνω από το FileStream που χρησιμοποιείς και να του το περάσεις απευθείας. Αν όμως χρησιμοποιείς κάποιο ActiveX control όπως το AxWindowsMediaPlayer λογικό είναι ότι δεν θα μπορέσεις να χρησιμοποιήσεις τα Streams του .ΝΕΤ.

    Το περίεργο είναι ότι μόνο στο Silverlight μπορείς να περάσεις ένα δικό σου Stream με τη MediaElement.SetSource . Το MediaElement υπάρχει στο WPF και στο Silverlight και είναι ένα control το οποίο χρησιμοποιείται video ή audio rendering και δεν έχει τους περιορισμούς του MediaPlayer, γι αυτό και χρησιμοποιείται κατά κόρον στην δημιουργία custom media players. Δυστυχώς, ακόμα και στο WPF δεν μπορείς να δώσεις το δικό σου stream.

    Μία ιδέα που διάβασα στο StackOverflow είναι να σηκώσεις ένα WCF service το οποίο θα ακούει σε κάποιο HTTP port για GET και θα επιστρέφει τo stream. Αντί για WCF μπορείς επίσης να χρησιμοποιήσεις την κλάση HttpListener για να κάνεις ουσιαστικά την ίδια δουλειά. Άλλη ιδέα από το ίδιο άρθρο (ομολογουμένως τραβηγμένη) είναι να φτιάξεις το κομμάτι του player σε Silverlight και να το δείξεις μέσα σε μία εφαρμογή WPF.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  07-11-2011, 19:30 68067 σε απάντηση της 68043

    Απ: Άνοιγμα video από MemoryStream με χρήση του DirectShow

    Υπάρχει κάποιο control εκτός του MediaPlayer που να διαβάζει streams? Η εφαρμογή που αναπτύσσω είναι windows forms, δεν είναι wpf ή silverlight.
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems